package cc.cary.warehouse.client.config;

import cc.cary.warehouse.client.dto.RespDTO;
import com.dtflys.forest.callback.SuccessWhen;
import com.dtflys.forest.http.ForestRequest;
import com.dtflys.forest.http.ForestResponse;
import lombok.extern.slf4j.Slf4j;

/**
 * 定义请求成功的条件
 *
 * @author Cary
 * @date 2023/4/23
 */
@Slf4j
public class MySuccessCondition implements SuccessWhen {
    @Override
    public boolean successWhen(ForestRequest forestRequest, ForestResponse forestResponse) {
        return forestResponse.noException() &&   // 请求过程没有异常
                forestResponse.statusOk() &&     // 并且状态码在 100 ~ 399 范围内
                forestResponse.getResult() != null && // 并且返回结果不为空
                ((RespDTO<?>) forestResponse.getResult()).getCode() == 0; // 并且返回结果的 code 为 0
    }
}
